Nov 30, 2006, 01:14 PM // 13:14
|
#2
|
Forge Runner
|
The technique is called Billboarding or Imposters.
There's a very sound and valid reason for it, and has to deal with technical nature of graphic cards, rendering pipeline, and memory management.
Shortly put, GW renders a lot. Without using this aproach, it would need to render 5-50 times more geometry, but the performance would decrade by a factor of thousands.
As it turns out, it's not all in polygons. The main problem imposters solve is state switching. Each time you want to render a different texture, object in different color, a different mesh, different object, graphic card needs to switch its state. This is an insanely expensive operation. Todays cards can render millions and billions of polygons per second. Yet they can only perform dozens of state switches per second. The idea of imposters is that they don't reduce the polygon count - that's the minor part, but allow all of them to be drawn in a single pass without switching state - making it an extremly cheap operation, and producing what looks like a scene with tens of thousands of polygons and hundreds of textures.
This doesn't scale. The imposters became a staple of 3D engines allowing graphics to improve by a factor of 10 without sacrificing performance. There are some alternate techniques, but they require every map to be manually partitioned - expensive, works for FPS games where you only have 5-10 maps.
|
|
|
Nov 30, 2006, 03:25 PM // 15:25
|
#3
|
Ascalonian Squire
|
Quote:
Originally Posted by Antheus
The technique is called Billboarding or Imposters.
There's a very sound and valid reason for it, and has to deal with technical nature of graphic cards, rendering pipeline, and memory management.
Shortly put, GW renders a lot. Without using this aproach, it would need to render 5-50 times more geometry, but the performance would decrade by a factor of thousands.
As it turns out, it's not all in polygons. The main problem imposters solve is state switching. Each time you want to render a different texture, object in different color, a different mesh, different object, graphic card needs to switch its of impstate. This is an insanely expensive operation. Todays cards can render millions and billions of polygons per second. Yet they can only perform dozens of state switches per second. The idea osters is that they don't reduce the polygon count - that's the minor part, but allow all of them to be drawn in a single pass without switching state - making it an extremly cheap operation, and producing what looks like a scene with tens of thousands of polygons and hundreds of textures.
This doesn't scale. The imposters became a staple of 3D engines allowing graphics to improve by a factor of 10 without sacrificing performance. There are some alternate techniques, but they require every map to be manually partitioned - expensive, works for FPS games where you only have 5-10 maps.
|
Ok thanks for the reply, interesting read. Is it the number of rasterization operation units on GPUs , the state switching limitation that you are refering to? As the most advanced GPU currently has 24 of them. Or this one? Can you guide me to a link where I can read up on state switching?
The problem is at some instances the outcome of the technique is not good in GW. You can check it yourself in the ice imps cave deep into the mineral springs when approaching rocks on the left wall or in the desert while approaching the wooden towers. The 2D sprite that appear are of uber low quality and its not mimicking a 3D object at all as I assume the 2D sprites are meant to make you think you are looking at a full 3D object while in fact its a 2D sprite facing your field of view.
If youre a member of the dev team do you think theres a chance to slightly modify the process to use less aggressive measures? I dont think rendering my character's head plus a few monsters is such a heavy task that needs to be toned down by turning all their craniums on the screen to a pointy single triangle when I zoom out. or is it tied to the algorithm that is being used to optimize performance in rendering geometry?
|
|
|
Nov 30, 2006, 08:06 PM // 20:06
|
#4
|
Forge Runner
|
No, I'm not a member of dev team , just *a* developer. So, everything expressed here is only my opinion. While not very likely, I could obviously be wrong.
Billboarding and imposters:
http://www.gamasutra.com/features/20...davis_01.shtml
For a brief summary on one of key performance bottleneck in today's complex graphics, this is a simple explanation of how severe render state switches are:
http://www.gamasutra.com/features/19...itchell_01.htm
Despite being an old article, same issues are still published for today's most sophisticated graphics cards.
As the article clearly states, the size of textures, the number of polygons rendered have 0 impact on performance, but switching between textures, polygons, shaders and other techniques is what causes extreme performance degradation.
What all recomend, is not to reduce number of polygons, they recomed to push the number of polygons rendered within a single state as high as possible. For example: during loading in GW, you can clearly see, that heads (for example) get rendered first, then all the hand weapons, then all the arms, and torsos last. All heads use the same mesh, so do all arms, and they also use the same texture map (one texture, but all possible variations).
This is direct effect of grouping objects to minimize the number of texture and mesh switches, hence optimally rendering entire scene.
While GW does exhibit graphic artefacts, the engine does a good job overall. I don't know if this can be changed, or how severe the performance impact would be. But typical complexity for rendering n objects is n^2 (if you double the number of objects, it will take 4 times as long to render the scene). In addition, having multiple rasterizer units, you only reduce this by a linear ammount, so, n^2 / 24. If you compare this for large values, you'll see the 24 or 48 or even 128 makes almost no difference.
Graphics cards today are mostly trying to push quality, since performance has somewhat peaked, and is no longer limited by hardware, but by software and memory constraints. This is also why many today's games have same look and feel to their graphics - they all push them as far as possible.
|
|
|
Dec 01, 2006, 12:35 AM // 00:35
|
#6
|
Forge Runner
|
Quote:
Originally Posted by DaGGeR
A funny quote I read somewhere said considering the rate at wich graphic cards are getting bigger and bigger soon you will be installing your motherboard onto your graphics card! its a joke for sure as moving to smaller chip fabrication methods plus integration with cpu is supposed to cobmat this. Supposed to... We'll see about that.
|
Majority of work no longer falls into texture and polygon rendering, but shaders. They are used for everything from animation to visual effects to object detail features. The predicted work distribution is 1:500 between pure polygon shuffling and work done by shaders. It's also one of the reasons DX10 provided by Vista is not intended to be backwards compatible with cards not supporting it natively, since it uses completely new architecture to make best use of this technology.
But as such, polygon counts handled by today's cards are more than sufficient to achieve maximum visual quality through use of different techniques. As a matter of fact, it's possible to reduce polygon counts just because of that. Why use 16 polygons to draw a bolt, when you can simulate it at much higher resolution using a shader and a texture.
Enough of off-topic though.
|
|
|
Thread Tools |
|
Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT. The time now is 10:48 AM // 10:48.
|